home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
math
/
nrpas13
/
sort.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-04-29
|
924b
|
41 lines
PROCEDURE sort(n: integer; VAR ra: glsarray);
(* Program using routine SORT must define the type
TYPE
glsarray = ARRAY [1..np] OF real;
in the main routine, with np >= n. *)
LABEL 99;
VAR
l,j,ir,i: integer;
rra: real;
BEGIN
l := (n DIV 2)+1;
ir := n;
WHILE true DO BEGIN
IF (l > 1) THEN BEGIN
l := l-1;
rra := ra[l]
END ELSE BEGIN
rra := ra[ir];
ra[ir] := ra[1];
ir := ir-1;
IF (ir = 1) THEN BEGIN
ra[1] := rra;
GOTO 99
END
END;
i := l;
j := l+l;
WHILE (j <= ir) DO BEGIN
IF (j < ir) THEN
IF (ra[j] < ra[j+1]) THEN j := j+1;
IF (rra < ra[j]) THEN BEGIN
ra[i] := ra[j];
i := j;
j := j+j
END ELSE
j := ir+1
END;
ra[i] := rra
END;
99: END;